package com.haowu.common.core.domain;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.haowu.common.core.constant.CacheConstants;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @Copyright 纳新智能科技有限公司
 * @Author Liky
 * @Date 2023/2/10
 */
@Data
@NoArgsConstructor
public class LoginParams implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 用户名
     */
    private String username;
    /**
     * 用户ID
     */
    private Long userId;
    /**
     * 密码
     */
    @JsonIgnore
    private String password;
    /**
     * 用户唯一标识
     */
    private String token;
    /**
     * 设备类型
     */
    private String deviceType;
    /**
     * 用户类型
     */
    private String userType;
    /**
     * 登录时间
     */
    private Long loginTime;
    /**
     * 过期时间
     */
    private Long expireTime;
    /**
     * 登录IP地址
     */
    private String ipaddr;
    /**
     * 登录地点
     */
    private String loginLocation;
    /**
     * 浏览器类型
     */
    private String browser;
    /**
     * 操作系统
     */
    private String os;

    /**
     * 获取登录id
     */
    public String getLoginId() {
        if (userType == null) {
            throw new IllegalArgumentException("用户类型不能为空");
        }
        if (userId == null) {
            throw new IllegalArgumentException("用户ID不能为空");
        }
        return userType + CacheConstants.LOGINID_JOIN_CODE + deviceType + CacheConstants.LOGINID_JOIN_CODE + userId;
    }
}
